package main

import (
	"encoding/json"
	"fmt"
)

// slice进行序列化
func testSlice() {
	var slice []map[string]interface{} // 定义了一个切片，里面是map格式 map[string]interface{}
	var m1 map[string]interface{}      //定义切片中的第一个map M1
	m1 = make(map[string]interface{})
	m1["name"] = "小崽子"
	m1["age"] = 16
	m1["address"] = [2]string{"上海市", "浦东新区"}
	slice = append(slice, m1)

	var m2 map[string]interface{} //定义切片中的第2个map M2
	m2 = make(map[string]interface{})
	m2["name"] = "大崽子"
	m2["age"] = 36
	m2["address"] = "北京市"
	slice = append(slice, m2)

	// 将slice进行序列化
	data, err := json.Marshal(slice)
	if err != nil {
		fmt.Printf("序列化错误 err is %v\n", err)
	}
	//输出序列化结果
	fmt.Printf("slice序列化后 = %v\n", string(data))
	//反序列化结果
	var slice2 []map[string]interface{}
	json.Unmarshal(data, &slice2)
	fmt.Println(slice2)
}
func main() {
	testSlice()
}
